<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Codex | 455のblog</title>
  <meta name="keywords" content=" 自然语言处理 , GPT , 代码生成 ">
  <meta name="description" content="Codex | 455のblog">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="为什么需要激活函数？神经网络的每一个神经元的工作流程可以总结为下图：  数学表达：  那么为什么需要激活函数？ 从上图可以看出，神经网络中每一层的输入输出其实都是一个线性求和的过程，下一层的输出只是承接了上一层输入函数的线性变换，所以如果没有激活函数，那么无论你构造的神经网络多么复杂，有多少层，最后的输出都是输入的线性组合，纯粹的线性组合并不能够解决更为复杂的问题。激活函数可以向神经网络中引入非线">
<meta property="og:type" content="article">
<meta property="og:title" content="激活函数">
<meta property="og:url" content="http://example.com/2022/07/10/%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0/index.html">
<meta property="og:site_name" content="455のblog">
<meta property="og:description" content="为什么需要激活函数？神经网络的每一个神经元的工作流程可以总结为下图：  数学表达：  那么为什么需要激活函数？ 从上图可以看出，神经网络中每一层的输入输出其实都是一个线性求和的过程，下一层的输出只是承接了上一层输入函数的线性变换，所以如果没有激活函数，那么无论你构造的神经网络多么复杂，有多少层，最后的输出都是输入的线性组合，纯粹的线性组合并不能够解决更为复杂的问题。激活函数可以向神经网络中引入非线">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="http://example.com/img/Activate/1.jpg">
<meta property="og:image" content="http://example.com/img/Activate/2.jpg">
<meta property="og:image" content="http://example.com/img/Activate/3.jpg">
<meta property="og:image" content="http://example.com/img/Activate/4.jpg">
<meta property="article:published_time" content="2022-07-10T08:41:09.000Z">
<meta property="article:modified_time" content="2022-07-17T07:15:59.379Z">
<meta property="article:author" content="Jilei Hou">
<meta property="article:tag" content="ONNX">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://example.com/img/Activate/1.jpg">


<link rel="icon" href="/img/IMG_1649.JPG">

<link href="/css/style.css?v=1.1.0" rel="stylesheet">

<link href="/css/hl_theme/github.css?v=1.1.0" rel="stylesheet">

<link href="//cdn.jsdelivr.net/npm/animate.css@4.1.0/animate.min.css" rel="stylesheet">

<script src="//cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js"></script>
<script src="/js/titleTip.js?v=1.1.0" ></script>

<script src="//cdn.jsdelivr.net/npm/highlightjs@9.16.2/highlight.pack.min.js"></script>
<script>
    hljs.initHighlightingOnLoad();
</script>

<script src="//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js"></script>



<script src="//cdn.jsdelivr.net/npm/jquery.cookie@1.4.1/jquery.cookie.min.js" ></script>

<script src="/js/iconfont.js?v=1.1.0" ></script>

<meta name="generator" content="Hexo 6.2.0"></head>
<div style="display: none">
  <input class="theme_disqus_on" value="false">
  <input class="theme_preload_comment" value="">
  <input class="theme_blog_path" value="">
  <input id="theme_shortcut" value="true" />
  <input id="theme_highlight_on" value="true" />
  <input id="theme_code_copy" value="true" />
</div>



<body>
<aside class="nav">
    <div class="nav-left">
        <a href="/"
   class="avatar_target">
    <img class="avatar"
         src="/img/IMG_1649.JPG"/>
</a>
<div class="author">
    <span>Jilei Hou</span>
</div>

<div class="icon">
    
        
            <a title="github"
               href="https://github.com/Jilei-Hou"
               target="_blank">
                
                    <svg class="iconfont-svg" aria-hidden="true">
                        <use xlink:href="#icon-github"></use>
                    </svg>
                
            </a>
        
    
        
            <a title="email"
               href="mailto:houjilei455@qq.com"
               target="_blank">
                
                    <svg class="iconfont-svg" aria-hidden="true">
                        <use xlink:href="#icon-email"></use>
                    </svg>
                
            </a>
        
    
        
            <a title="qq"
               href="http://wpa.qq.com/msgrd?v=3&uin=305509299&site=qq&menu=yes"
               target="_blank">
                
                    <svg class="iconfont-svg" aria-hidden="true">
                        <use xlink:href="#icon-qq"></use>
                    </svg>
                
            </a>
        
    
</div>




<ul>
    <li>
        <div class="all active" data-rel="All">All
            
                <small>(6)</small>
            
        </div>
    </li>
    
        
            
                <li>
                    <div data-rel="好玩的技术">
                        
                        好玩的技术
                        <small>(1)</small>
                        
                    </div>
                    
                </li>
            
        
    
        
            
                <li>
                    <div data-rel="论文分享">
                        
                        论文分享
                        <small>(1)</small>
                        
                    </div>
                    
                </li>
            
        
    
        
            
                <li>
                    <div data-rel="模型量化">
                        <i class="fold iconfont icon-right"></i>
                        
                        模型量化
                        <small>(4)</small>
                        
                    </div>
                    
                        <ul class="sub hide">
                            
                                <li>
                                    <div data-rel="模型量化<--->算子">
                                        
                                        算子
                                        
                                            <small>(3
                                                )</small>
                                        
                                    </div>
                                    
                                </li>
                            
                        </ul>
                    
                </li>
            
        
    
        
            
        
    
</ul>
<div class="left-bottom">
    <div class="menus">
        
            
            
            
    </div>
    <div>
        
        
    </div>
</div>
<input type="hidden" id="yelog_site_posts_number" value="6">
<input type="hidden" id="yelog_site_word_count" value="6.6k">
<div style="display: none">
    <span id="busuanzi_value_site_uv"></span>
    <span id="busuanzi_value_site_pv"></span>
</div>

    </div>
    <div class="nav-right">
        <div class="friends-area">
    <div class="friends-title">
        Links
        <i class="iconfont icon-left"></i>
    </div>
    <div class="friends-content">
        <ul>
            
            <li><a target="_blank" href="http://yelog.org/">叶落阁</a></li>
            
        </ul>
    </div>
</div>
        <div class="title-list">
    <div class="right-top">
        <div id="default-panel">
            <i class="iconfont icon-search" data-title="搜索 快捷键 i"></i>
            <div class="right-title">All</div>
            <i class="iconfont icon-file-tree" data-title="切换到大纲视图 快捷键 w"></i>
        </div>
        <div id="search-panel">
            <i class="iconfont icon-left" data-title="返回"></i>
            <input id="local-search-input" autocomplete="off"/>
            <label class="border-line" for="input"></label>
            <i class="iconfont icon-case-sensitive" data-title="大小写敏感"></i>
            <i class="iconfont icon-tag" data-title="标签"></i>
        </div>
        <div id="outline-panel" style="display: none">
            <div class="right-title">大纲</div>
            <i class="iconfont icon-list" data-title="切换到文章列表"></i>
        </div>
    </div>

    <div class="tags-list">
    <input id="tag-search" />
    <div class="tag-wrapper">
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>代码生成</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>模型量化</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>自然语言处理</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>Conv</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>GitHub</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>GPT</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>Hexo</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>ONNX</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>PTQ</a>
            </li>
        
            <li class="article-tag-list-item">
                <i class="iconfont icon-tag"></i><a>QAT</a>
            </li>
        
    </div>

</div>

    
    <nav id="title-list-nav">
        
        <a  class="All 模型量化 算子 "
           href="/2022/07/10/%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0/"
           data-tag="ONNX"
           data-author="" >
            <span class="post-title" title="激活函数">激活函数</span>
            <span class="post-date" title="2022-07-10 16:41:09">2022/07/10</span>
        </a>
        
        <a  class="All 模型量化 算子 "
           href="/2022/07/09/Conv/"
           data-tag="Conv,ONNX"
           data-author="" >
            <span class="post-title" title="Conv">Conv</span>
            <span class="post-date" title="2022-07-09 14:26:09">2022/07/09</span>
        </a>
        
        <a  class="All 模型量化 "
           href="/2022/06/18/%E6%A8%A1%E5%9E%8B%E9%87%8F%E5%8C%96/"
           data-tag="模型量化,PTQ,QAT"
           data-author="" >
            <span class="post-title" title="模型量化">模型量化</span>
            <span class="post-date" title="2022-06-18 15:13:55">2022/06/18</span>
        </a>
        
        <a  class="All 模型量化 算子 "
           href="/2022/06/12/Conv_Gemm_MatMul%E4%B9%8B%E9%97%B4%E7%9A%84%E8%81%94%E7%B3%BB/"
           data-tag="Conv,ONNX"
           data-author="" >
            <span class="post-title" title="Conv Gemm MatMul之间的联系">Conv Gemm MatMul之间的联系</span>
            <span class="post-date" title="2022-06-12 14:35:00">2022/06/12</span>
        </a>
        
        <a  class="All 好玩的技术 "
           href="/2022/06/11/Hexo+GitHub/"
           data-tag="Hexo,GitHub"
           data-author="" >
            <span class="post-title" title="Hexo+GitHub搭建属于你的博客">Hexo+GitHub搭建属于你的博客</span>
            <span class="post-date" title="2022-06-11 16:55:00">2022/06/11</span>
        </a>
        
        <a  class="All 论文分享 "
           href="/2022/06/11/Codex/"
           data-tag="自然语言处理,GPT,代码生成"
           data-author="" >
            <span class="post-title" title="Codex">Codex</span>
            <span class="post-date" title="2022-06-11 16:38:00">2022/06/11</span>
        </a>
        
        <div id="no-item-tips">

        </div>
    </nav>
    <div id="outline-list">
    </div>
</div>

    </div>
    <div class="hide-list">
        <div class="semicircle" data-title="切换全屏 快捷键 s">
            <div class="brackets first"><</div>
            <div class="brackets">&gt;</div>
        </div>
    </div>
</aside>
<div id="post">
    <div class="pjax">
        <article id="post-Codex" class="article article-type-post" itemscope itemprop="blogPost">
    
        <h1 class="article-title">Codex</h1>
    
    <div class="article-meta">
        
        
        
        <span class="book">
            <i class="iconfont icon-category"></i>
            
            
            <a  data-rel="论文分享">论文分享</a>
            
        </span>
        
        
        <span class="tag">
            <i class="iconfont icon-tag"></i>
            
            <a class="color2">自然语言处理</a>
            
            <a class="color4">GPT</a>
            
            <a class="color5">代码生成</a>
            
        </span>
        
    </div>
    <div class="article-meta">
        
            Created At : <time class="date" title='Updated At: 2022-06-11 18:02:35'>2022-06-11 16:38</time>
        
    </div>
    <div class="article-meta">
        
        <span>Count:2.2k</span>
        
        
        <span id="busuanzi_container_page_pv">
            Views 👀 :<span id="busuanzi_value_page_pv">
                <span class="count-comment">
                    <span class="spinner">
                      <div class="cube1"></div>
                      <div class="cube2"></div>
                    </span>
                </span>
            </span>
        </span>
        
        
    </div>
    
    <div class="toc-ref">
    
        <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#%E7%AE%80%E4%BB%8B"><span class="toc-text">简介</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E8%AF%84%E4%BC%B0"><span class="toc-text">评估</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%AF%84%E4%BC%B0%E6%8C%87%E6%A0%87-pass-k"><span class="toc-text">评估指标---pass@k</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%AF%84%E4%BC%B0%E6%95%B0%E6%8D%AE%E9%9B%86%E2%80%94HumanEval"><span class="toc-text">评估数据集—HumanEval</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E6%A8%A1%E5%9E%8B"><span class="toc-text">模型</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%AE%AD%E7%BB%83%E6%95%B0%E6%8D%AE"><span class="toc-text">训练数据</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BD%BF%E7%94%A8GPT-3%E8%AE%AD%E7%BB%83%E5%BE%97%E5%88%B0Codex"><span class="toc-text">使用GPT-3训练得到Codex</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E7%BB%93%E6%9E%9C"><span class="toc-text">结果</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#Codex-S"><span class="toc-text">Codex-S</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%8F%A6%E5%A4%96%E7%9A%84%E5%BA%94%E7%94%A8%E2%80%94%E7%94%9F%E6%88%90%E6%96%87%E6%A1%A3%EF%BC%88Codex-D%EF%BC%89"><span class="toc-text">另外的应用—生成文档（Codex-D）</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%B1%80%E9%99%90%E6%80%A7"><span class="toc-text">局限性</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%8F%AF%E8%83%BD%E5%BD%B1%E5%93%8D"><span class="toc-text">可能影响</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E6%80%BB%E7%BB%93"><span class="toc-text">总结</span></a></li><li class="toc-item toc-level-1"><a class="toc-link" href="#%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99"><span class="toc-text">参考资料</span></a></li></ol>
    
<style>
    .left-col .switch-btn,
    .left-col .switch-area {
        display: none;
    }
    .toc-level-6 i,
    .toc-level-6 ol {
        display: none !important;
    }
</style>
</div>
    
    <div class="article-entry" itemprop="articleBody">
      
        <p><strong>Evaluating Large Language Models Trained on Code</strong></p>
<ol>
<li>根据函数名和注释自动补全代码</li>
<li>根据你写的代码，猜出你接下来可能要写的代码</li>
<li>自动补充测试样例</li>
<li>支持多种语言</li>
<li>….</li>
</ol>
<p><strong>总之，就是可以帮你写代码</strong></p>
<h1 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h1><ol>
<li>提出了一个新问题：代码补全</li>
<li>采用的解决方案是：将GitHub上采集到的Python代码作为数据集重新训练一下GPT-3，他就把这一套权重叫做Codex</li>
<li>一个值得注意的点：<ol>
<li>代码补全这个任务的特殊性：具体来说，传统的NLP任务，生成的结果越接正确答案，那么模型得分越高，但是代码不是这样的，代码但凡有一点点小Bug，都可能造成毁灭性的结果。所以对于代码补全任务，判断生成代码的正确与否就是使用的单元测试（unit test）。—所以对于代码补全任务需要新的评估指标和数据集。</li>
</ol>
</li>
</ol>
<h1 id="评估"><a href="#评估" class="headerlink" title="评估"></a>评估</h1><h2 id="评估指标-pass-k"><a href="#评估指标-pass-k" class="headerlink" title="评估指标---pass@k"></a>评估指标---pass@k</h2><p>NLP中最常见的评估方法是BLUE score（bilingual evaluation understudy）即：双语互译质量评估辅助工具。BLEU的设计思想：机器翻译结果越接近专业人工翻译的结果，则越好。BLEU算法实际上就是在判断两个句子的相似程度。想知道一个句子翻译前后的表示是否意思一致，直接的办法是拿这个句子的标准人工翻译与机器翻译的结果作比较，如果它们是很相似的，说明我的翻译很成功。</p>
<p>可以看出，<a target="_blank" rel="noopener" href="https://zhuanlan.zhihu.com/p/338488036">BLUE score</a>是一个模糊匹配的过程，意思大差不差就行。但是编程是一个比较特殊的问题，一个小的差别可能就会带来灾难性的影响（永无止尽的Bug Fix）。</p>
<p>针对代码补全这样一个特殊问题，作者提出了一个pass@k的一个指标，生成k个结果，只要有一个通过就算通过（k如果比较大，就会对模型的能力过度乐观，当k比较大的时候，虽然模型分数比较高，但是在使用时，会给用户返回一大堆代码，让用户去选，这个也是很难的，所以说需要排算法，但这个分数并没有反映排序）。</p>
<p><img src="/../img/Codex/pass@k.png" alt="pass@k"></p>
<p>n生成的候补答案总数，k每次选的答案，c代表能通过单元测试的答案（n&#x3D;200，k&lt;&#x3D;100，c&lt;&#x3D;n）</p>
<h2 id="评估数据集—HumanEval"><a href="#评估数据集—HumanEval" class="headerlink" title="评估数据集—HumanEval"></a>评估数据集—HumanEval</h2><p>HumanEval（Hand-Written Evaluation Set）包含164个<strong>人工设计</strong>的编程问题，每个问题包含函数名、注释、函数体、多个单元测试</p>
<p>手动实现是非常重要的：因为如果直接从网上找，比如说从leetcode上去扒，很有可能你的这个问题就在你在训练集里面（数据泄露）</p>
<h1 id="模型"><a href="#模型" class="headerlink" title="模型"></a>模型</h1><h2 id="训练数据"><a href="#训练数据" class="headerlink" title="训练数据"></a>训练数据</h2><p>从GitHub上收集到了179GB的Python代码。对文件进行简单的过滤（自动生成、平均长度大于100行、最大长度大于1000行、包含很少的字母&#x2F;数字），最后得到159GB的Python代码文件</p>
<h2 id="使用GPT-3训练得到Codex"><a href="#使用GPT-3训练得到Codex" class="headerlink" title="使用GPT-3训练得到Codex"></a>使用GPT-3训练得到Codex</h2><p>用上面数据集在GPT-3的预训练模型上再训练一下得到了Codex</p>
<p>后面作者又收集了一个跟HumanEval更相近的训练集，在上面训练得到的模型叫Codex-S</p>
<p>作者有提到不管是在GPT-3的预训练模型训练，还是从头开始训练得到的模型，在精度上基本上没有差别。</p>
<p>但是在GPT-3的预训练模型训练收敛会更快一点</p>
<p>注意：</p>
<ol>
<li>训练时，会对代码里的空格，换行进行处理</li>
<li>生成代码时，什么时候停止：遇到了 ‘\nclass’, ‘\ndef’, ‘\n#’, ‘\nif’, ‘\nprint’ 等就停掉代码</li>
</ol>
<p>评估采样时，使用p&#x3D;0.95的核采样（nucleus sampling）：就是说将所有候补答案，按概率从高到低排序，依次拿出来，指导所有选出来的候补的概率和大于0.95，就停止采样。</p>
<h2 id="结果"><a href="#结果" class="headerlink" title="结果"></a>结果</h2><ol>
<li>模型大小和损失之间的关系：模型参数指数级上升时，损失线性下降</li>
</ol>
<p><img src="/../img/Codex/2.png" alt="模型大小和损失之间的关系"></p>
<ol start="2">
<li><p>作者在算softmax前，会除以某一个T。T较大时，各个候选的概率比较相近，T较小时，各个候选的概率分的比较开。如果用一个较小的T，最好的几个候选，概率较大，采样的时候总能把最好的几个取出来，如果用一个较大的T，不是最好的几个候选也能被采样出来</p>
<ul>
<li><p>左图反映采样次数和T之间的关系：不同的T，随着采样次数的增加，pass@k的变化</p>
</li>
<li><p>右图反映不同采样次数下最好的T：随着允许采样的数目增加，最好的T越大（假如说我只允许你选一个，那么你最应该选择出最好的候选答案，那就对应比较小的T）</p>
</li>
</ul>
</li>
</ol>
<table>
<thead>
<tr>
<th><img src="/../img/Codex/3.png" alt="采样次数和T之间的关系"></th>
<th><img src="/../img/Codex/4.png" alt="不同采样次数下最好的T"></th>
</tr>
</thead>
</table>
<ol start="3">
<li>下图反映不同排序算法（从生成的k的答案里面选出最好的）：Oracle代表使用了先验（就是把取出来的k的候选，放到单元测试上测一下，选择能通过的候选出来），那么明显随着k增大，通过率越高。</li>
</ol>
<p><img src="/../img/Codex/5.png" alt="不同排序算法"></p>
<ol start="4">
<li>关于BLUE score：作者在HumanEval的4个随机任务上测了BLUE score，可以看出，BLUE分数的高低与答案正确并没有直接关系，也印证了作者前面说的不能使用BLUE score的原因</li>
</ol>
<p><img src="/../img/Codex/6.png" alt="关于BLUE score"></p>
<ol start="5">
<li>Codex和GPT-NEO、GPT-J、<a target="_blank" rel="noopener" href="https://www.tabnine.com/">TABNINE</a>的性能对比</li>
</ol>
<p><img src="/../img/Codex/7.png" alt="Codex和其他方法的性能对比"></p>
<h1 id="Codex-S"><a href="#Codex-S" class="headerlink" title="Codex-S"></a>Codex-S</h1><p>使用跟HumanEval更相近数据集作为的训练集，在上面训练得到的模型叫Codex-S</p>
<p>得到训练集的方法:</p>
<ol>
<li>程序竞赛的题目</li>
<li>CI里面拿</li>
<li>过滤：使用Codex-12B生成100个候选答案，如果其中至少有一个能通过单元测试，就把问题留下来，否则，作者觉得可能是这个问题的单元测试不正确，或者问题太复杂（作者认为太难的问题对模型训练没有太大帮助），就过滤掉</li>
</ol>
<table>
<thead>
<tr>
<th><img src="/../img/Codex/8.png" alt="Codex-S和Codex"></th>
<th><img src="/../img/Codex/9.png" alt="Codex-S和Codex"></th>
</tr>
</thead>
</table>
<p>左图反映Codex-S和Codex间在模型增大时，pass@k的分数：实线Codex-S，虚线就是Codex</p>
<p>右图反映Codex-S和Codex不同使用排序算法间的差别</p>
<h1 id="另外的应用—生成文档（Codex-D）"><a href="#另外的应用—生成文档（Codex-D）" class="headerlink" title="另外的应用—生成文档（Codex-D）"></a>另外的应用—生成文档（Codex-D）</h1><p>数据集调整：把docstring放到最后面（函数名和函数体后面）</p>
<p>使用这样数据集训练得到的模型叫Codex-D</p>
<p>判断生成的docstring是否合格：</p>
<ol>
<li>眼睛去看</li>
<li>先用Codex-D生成docstring，再用docstring和函数名生成函数体，如果代码能过单元测试，则认为生成的docstring质量很高</li>
</ol>
<h1 id="局限性"><a href="#局限性" class="headerlink" title="局限性"></a>局限性</h1><ol>
<li>样本有效性不够（使用100G的代码去训练得到的模型只能处理比较简单的代码任务）</li>
<li>受注释影响较大</li>
<li>做数学相关的代码比较差</li>
</ol>
<p><img src="/../img/Codex/10.png" alt="处理数学代码示例"></p>
<h1 id="可能影响"><a href="#可能影响" class="headerlink" title="可能影响"></a>可能影响</h1><ol>
<li>过度依赖模型生成的代码</li>
<li>模型可能能生成你想要的答案，但是他会按照训练数据集的风格去写，可能跟你想要的风格不一样</li>
<li>偏见（GitHub男性用户较多）</li>
<li>程序员失业？</li>
<li>模型经常使用一些特定的包，可能导致其他的包使用概率下降（比如openai自己开发一个深度学习框架，让Codex生成的代码都用这个框架，如果这个模型比较火，那么可能就没有TensorFlow PyTorch的生存空间了）</li>
<li>安全问题（使用Codex写病毒）</li>
<li>环境问题（模型训练耗电）</li>
<li>法律（爬GitHub上的代码训练模型可能会有法律问题？生成的代码可能会有抄袭问题，且这种问题用户还不知道）</li>
</ol>
<h1 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h1><p>说白了就是，作者把GitHub上的Python代码爬爬下来，用GPT-3训练了一个模型（Codex），发现可以解决部分代码问题，为了能解决更多问题（把通过率刷上去？），又收集了一个跟测试集（HumanEval）更近似的数据集训练得到（Codex-S），然后作者觉得只生成代码没意思，又把数据集里的docstring放到函数名和函数体后面得到一个新的数据集，训练得到（Codex-D）</p>
<p>这篇论文在模型上并没有什么创新，主要就是提出了一个新的问题（代码生成，后续有很多相关工作，比如说<a target="_blank" rel="noopener" href="https://arxiv.org/abs/2203.07814">AlphaCode</a>），然后就是花精力收集数据集甚至更好的数据集。</p>
<h1 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h1><p>Codex 官网：<a target="_blank" rel="noopener" href="https://openai.com/blog/openai-codex/">OpenAI Codex</a></p>
<p>Codex paper：<a target="_blank" rel="noopener" href="https://arxiv.org/abs/2107.03374">Evaluating Large Language Models Trained on Code</a></p>
<p>Copilot 官网（Codex的实际应用）：<a target="_blank" rel="noopener" href="https://copilot.github.com/">GitHub Copilot · Your AI pair programmer</a></p>
<p>沐神讲解Codex：<a target="_blank" rel="noopener" href="https://www.bilibili.com/video/BV1iY41137Zi?spm_id_from=333.337.search-card.all.click">OpenAI Codex 论文精读【论文精读】_哔哩哔哩_bilibili</a></p>
<p>TabNine官网：<a target="_blank" rel="noopener" href="https://www.tabnine.com/">Code Faster with AI Code Completions | Tabnine</a></p>
<p>AlphaCode paper：<a target="_blank" rel="noopener" href="https://arxiv.org/abs/2203.07814">Competition-Level Code Generation with AlphaCode</a></p>

      
       <hr><span style="font-style: italic;color: gray;"> 转载请注明来源，欢迎对文章中的引用来源进行考证，欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论，也可以邮件至houjilei455@qq.com </span>
    </div>
</article>







    




    </div>
    <div class="copyright">
        <p class="footer-entry">
    ©2022-2022 455のblog
</p>
<p class="footer-entry">Built with <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/yelog/hexo-theme-3-hexo" target="_blank">3-hexo</a> theme</p>

    </div>
    <div class="full-toc">
        <button class="full" data-title="切换全屏 快捷键 s"><span class="min "></span></button>
<a class="" id="rocket" ></a>

    </div>
</div>

</body>
<script src="/js/jquery.pjax.js?v=1.1.0" ></script>

<script src="/js/script.js?v=1.1.0" ></script>
<script>
    var img_resize = 'default';
    function initArticle() {
        /*渲染对应的表格样式*/
        

        /*渲染打赏样式*/
        

        /*高亮代码块行号*/
        

        /*访问数量*/
        
        $.getScript("//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js");
        

        /*代码高亮，行号对齐*/
        $('.pre-numbering').css('line-height',$('.has-numbering').css('line-height'));

        
        
    }

    /*打赏页面隐藏与展示*/
    

</script>

<!--加入行号的高亮代码块样式-->

<!--自定义样式设置-->
<style>
    
    
    .nav {
        width: 562px;
    }
    .nav.fullscreen {
        margin-left: -562px;
    }
    .nav-left {
        width: 140px;
    }
    
    
    @media screen and (max-width: 1468px) {
        .nav {
            width: 512px;
        }
        .nav.fullscreen {
            margin-left: -512px;
        }
        .nav-left {
            width: 120px;
        }
    }
    
    
    @media screen and (max-width: 1024px) {
        .nav {
            width: 512px;
            margin-left: -512px
        }
        .nav.fullscreen {
            margin-left: 0;
        }
    }
    
    @media screen and (max-width: 426px) {
        .nav {
            width: 100%;
        }
        .nav-left {
            width: 100%;
        }
    }
    
    
    .nav-right .title-list nav a .post-title, .nav-right .title-list #local-search-result a .post-title {
        color: #383636;
    }
    
    
    .nav-right .title-list nav a .post-date, .nav-right .title-list #local-search-result a .post-date {
        color: #5e5e5f;
    }
    
    
    .nav-right nav a.hover, #local-search-result a.hover{
        background-color: #e2e0e0;
    }
    
    

    /*列表样式*/
    

    /* 背景图样式 */
    
    


    /*引用块样式*/
    

    /*文章列表背景图*/
    

    
    #post .pjax article :not(pre) > code {
        color: #24292e;
        font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;
        background-color: rgba(27,31,35,.05);
        border-radius: 3px;
        font-size: 85%;
        margin: 0;
        padding: .2em .4em;
    }
    
</style>







</html>
